﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.UtilidadesWs;
using System.ComponentModel;
using System.ServiceModel.Channels;


namespace PubClub.GUI
{
    public partial class CadastroUsuario : System.Web.UI.Page
    {
        ObjetoCliente cliente = new ObjetoCliente();
        Utilizadades_WS util = new Utilizadades_WS();
        BindingList<Cidade> listaCidade = new BindingList<Cidade>();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();


        # region metodo para carregar lista de estados
        public void carregarDropDownEstados()
        {
            BindingList<UF> listaUF = new BindingList<UF>(util.Get_UFs());

            for (int i = 0; i < listaUF.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaUF[i].Nome;
                li.Value = listaUF[i].Id.ToString();
                DropDownListEstado.Items.Add(li);

            }
        }
        #endregion
        #region metodo para carregar lista de cidades ao clicaar no estado da dropdown list
        public void carregarDropDownCidades()
        {
            listaCidade.Clear();
            ComboCidade.Items.Clear();
            listaCidade = new BindingList<Cidade>(util.ListCidadesByEstadoId(Convert.ToInt32(DropDownListEstado.SelectedValue.ToString())));


            for (int i = 0; i < listaCidade.Count; i++)
            {
                ListItem li = new ListItem();
                li.Text = listaCidade[i].Label;
                li.Value = listaCidade[i].Id.ToString();
                ComboCidade.Items.Add(li);

            }

        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            #region Mascaras
            //textboxCEP.Attributes.Add("onkeydown", "MascaraCep(this)");
            //textBoxCPF.Attributes.Add("onkeydown", "MascaraCpf(this)");
            //textBoxNumeroCelular.Attributes.Add("onekeydown", "MascaraTelefoneComDdd(this)");
            //textBoxDataDeNascimento.Attributes.Add("onkeydown", "MascaraData(this)");
            #endregion

            if (!Page.IsPostBack)
            {
                carregarDropDownEstados();

            }
        }

        protected void btCadastrarClick(object sender, EventArgs e)
        {



            #region Verifica todos campos
            #region Verifica nome em branco
            if (textBoxNomeComleto.Text.Trim().Equals(""))
            {
                LabelAviso.ForeColor = System.Drawing.Color.Red;
                LabelAviso.Text = "Nome deve ser preenchido.";
                LabelAviso.Visible = true;
                textBoxNomeComleto.Focus();
                return;
            }
            else
            #endregion
                #region Verifica senhas em branco
                if (textBoxSenha.Text.Trim().Equals(""))
                {
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Text = "Senha deve ser preenchida.";
                    LabelAviso.Visible = true;
                    textBoxSenha.Focus();
                    return;
                }
                else
                    if (textBoxSenha2.Text.Trim().Equals(""))
                    {
                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                        LabelAviso.Text = " Confirmar senha deve ser preenchido.";
                        LabelAviso.Visible = true;
                        textBoxSenha2.Focus();
                        return;
                    }
                    else
                #endregion
                        #region Verifica se as senhas são iguais
                        if (!textBoxSenha.Text.Trim().Equals(textBoxSenha2.Text.Trim()))
                        {
                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                            LabelAviso.Text = "Senhas não conferem.";
                            LabelAviso.Visible = true;
                            textBoxSenha.Focus();
                            return;
                        }
                        else
                        #endregion
                            #region Verfica o email em branco
                            if (textBoxEmail.Text.Trim().Equals(""))
                            {
                                LabelAviso.ForeColor = System.Drawing.Color.Red;
                                LabelAviso.Text = "Email deve ser preenchido.";
                                LabelAviso.Visible = true;
                                textBoxEmail.Focus();
                                return;
                            }
                            else
                            #endregion
                                #region Verifica numero do celular em branco
                                if (textBoxNumeroCelular.Text.Trim().Equals(""))
                                {
                                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                                    LabelAviso.Text = "Número do aparelho deve ser preenchido.";
                                    LabelAviso.Visible = true;
                                    textBoxNumeroCelular.Focus();
                                    return;
                                }
                                else
                                #endregion
                                    #region Verifica cpf em branco
                                    if (textBoxCPF.Text.Trim().Equals(""))
                                    {
                                        LabelAviso.ForeColor = System.Drawing.Color.Red;
                                        LabelAviso.Text = "CPF deve ser preenchido.";
                                        LabelAviso.Visible = true;
                                        textBoxCPF.Focus();
                                        return;
                                    }
                                    else
                                    #endregion
                                        #region Verifica CEP em branco
                                        if (textboxCEP.Text.Trim().Equals(""))
                                        {
                                            LabelAviso.ForeColor = System.Drawing.Color.Red;
                                            LabelAviso.Text = "CEP deve ser preenchida.";
                                            LabelAviso.Visible = true;
                                            textboxCEP.Focus();
                                            return;
                                        }
                                        else
                                        #endregion
                                            #region verifica rua em branco
                                            if (textBoxRua.Text.Trim().Equals(""))
                                            {
                                                LabelAviso.ForeColor = System.Drawing.Color.Red;
                                                LabelAviso.Text = "Rua deve ser preenchida.";
                                                LabelAviso.Visible = true;
                                                textBoxRua.Focus();
                                                return;
                                            }
                                            else
                                            #endregion
                                                #region Verifica bairro em branco
                                                if (textBoxBairro.Text.Trim().Equals(""))
                                                {
                                                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                                                    LabelAviso.Text = "Bairro deve ser preenchido.";
                                                    LabelAviso.Visible = true;
                                                    textBoxBairro.Focus();
                                                    return;
                                                }
                                                #endregion
            #endregion



            #region Recebendo valores do form
            cliente.Nome = textBoxNomeComleto.Text.Trim();
            cliente.Senha = textBoxSenha.Text.Trim();
            cliente.Email = textBoxEmail.Text.Trim();

            if (ComboSexo.SelectedValue.Equals("1"))
            {
                cliente.Sexo = true;
            }
            else
            {
                cliente.Sexo = false;
            }
            cliente.CEP = textboxCEP.Text.Trim();
            cliente.CidadeId = Convert.ToInt32(ComboCidade.SelectedValue.ToString());
            cliente.Complemento = textBoxComplemento.Text.Trim();
            cliente.CPF = textBoxCPF.Text.Trim();
            cliente.Bairro = textBoxBairro.Text.ToString();
            cliente.Nascimento = textBoxDataDeNascimento.Text.Trim();
            cliente.Rua = textBoxRua.Text.Trim();
            cliente.Numero = textBoxNumeroRua.Text.Trim();
            #endregion


            ObjetoRetornoCliente retornoWebService = webServiceCliente.CreateCliente(cliente.CPF, cliente.Nome, cliente.Email,
    cliente.Senha, cliente.Sexo, cliente.Nascimento, cliente.CEP, cliente.Rua, cliente.Numero, cliente.Bairro, cliente.CidadeId,
    cliente.Complemento);

            if (retornoWebService.Sucesso == true)
            {
                LabelAviso.ForeColor = System.Drawing.Color.Green;
                LabelAviso.Text = retornoWebService.Menssagem;
                LabelAviso.Visible = true;

                Response.Redirect("Login.aspx?Sucesso=1");
            }
            else
            {
                if ("http://".Equals(retornoWebService.Menssagem.Substring(0, 7)))
                {
                    Response.Redirect(retornoWebService.Menssagem);
                }
                else
                {
                    LabelAviso.ForeColor = System.Drawing.Color.Red;
                    LabelAviso.Text = retornoWebService.Menssagem;
                    LabelAviso.Visible = true;
                }
            }
        }       

        protected void DropDownListEstado_SelectedIndexChanged(object sender, EventArgs e)
        {

            carregarDropDownCidades();



        }

        protected void BtCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/GUI/Login.aspx");
        }



    }
}





























































